#include "CRTP.hpp"
#include <iostream>

void crtp_main() {
	Derived<int> a;
	Derived<int> b;
	Derived<int> c(b);

	Derived<double> x;
	Derived<double> y(x);
	std::cout << "Derived<int> has " << Derived<int>::live()  <<" live object(s)"<< std::endl;

	Derived2<int> a2;
	Derived2<int> b2;
	Derived2<int> c2(b2);

	Derived2<double> x2;
	Derived2<double> y2(x2);
	std::cout << "Derived2<int> has " << Derived2<int>::live()  <<" live object(s)"<< std::endl;
}